Recognition lookups for synchronization of media playback with comment creation and delivery

ABSTRACT

Methods, systems, and devices are described for associating comments with playback of media content. At an input device, an insertion point for a comment during the playback of the media content is received from a user, and a sample is obtained of a portion of the playback of the media content. A time code associated with the selected insertion point is identified based on the sample. The comment is received from the user and associated with the time code of the selected insertion point. At an output device, a synchronization request is received from a user, and a sample of a portion of the playback of the media content is obtained. A time code for a current point in the playback is identified based on the sample, and a comment associated with the current point in the playback is identified and displayed to the user based on the time code.

CROSS REFERENCES

The present application claims priority to the following patent applications: U.S. Provisional Patent Application No. 61/421,945, filed Dec. 10, 2010, entitled “DYNAMIC MULTIMEDIA COMMENT AND DISPLAY ARCHITECTURE”; U.S. Provisional Patent Application No. 61/432,395, filed Jan. 13, 2011, entitled “SYSTEM, DEVICE, AND INTERFACE ARCHITECTURE FOR COMMENT CREATION”; U.S. Provisional Patent Application No. 61/432,397, filed Jan. 13, 2011, entitled “SCREEN LOCATION COMMENT ARCHITECTURE”; U.S. Provisional Patent Application No. 61/439,189, filed Feb. 3, 2011, entitled “USER SELECTABLE COMMENT FILTER AND RELATED ARCHITECTURE”; and U.S. Provisional Patent Application No. 61/439,196, filed Feb. 3, 2011, entitled “COMMENT DELIVERY ARCHITECTURE,” each of which is incorporated by reference in its entirety for all purposes.

The present application is further related to U.S. Patent Application, filed concurrently herewith, entitled “ASSOCIATING COMMENTS WITH PLAYBACK OF MEDIA CONTENT” (Attorney Docket P003.01 (77828.0009)); U.S. Patent Application, filed concurrently herewith, entitled “PARALLEL ECHO VERSION OF MEDIA CONTENT FOR COMMENT CREATION AND DELIVERY’ (Attorney Docket No. P003.03 (77828.0011)); U.S. Patent Application, filed concurrently herewith, entitled “ASSOCIATION OF COMMENTS WITH SCREEN LOCATIONS DURING MEDIA CONTENT PLAYBACK” (Attorney Docket No. P004.01 (77828.0012)); U.S. Patent Application, filed concurrently herewith, entitled “MEDIA CONTENT CLIP IDENTIFICATION AND COMBINATION ARCHITECTURE” (Attorney Docket No. P006.01 (77828.0013)); and U.S. Patent Application, filed concurrently herewith, entitled “COMMENT DELIVERY AND FILTERING ARCHITECTURE” (Attorney Docket No. P007.01 (77828.0014)); each of which is incorporated herein in its entirety for all purposes.

BACKGROUND

The present invention relates to the creation, storage, and distribution of commentary on media content.

Most people interact quite regularly with recorded media content, such as videos, music, books, and the spoken word. Modern society leans heavily on recorded media content to provide both entertainment and education. With the recent proliferation of portable media players, smartphones, tablet computers and the like, the demand for recorded media content continues to increase.

For many people, social interaction enhances the experience of viewing or listening to recorded media content. For example, the reactions and opinions of one's peers with respect to a certain film may increase that person's enjoyment of the film. In other examples, the perspective of a filmmaker or critic with a unique understanding of a particular film may, when shared, add greater meaning to one's perception of the film.

Often, a person consuming recorded media content may wish to share comments with other consumers of the recorded media content at present or in the future. Additionally, it may be desirable to incorporate comments generated by others with regard to specific portions of recorded media content into the experience of viewing and/or listening to the media content.

SUMMARY

Methods, systems, and devices are described for associating comments with playback of media content through the sampling of the playback of the media content.

In a first set of embodiments, a method of associating comments with playback of media content includes receiving from a user at an input device a selection of an insertion point for a comment during the playback of the media content. A sample of a portion of the playback of the media content is obtained with the input device. A time code associated with the selected insertion point is identified at the input device based on the sample. The comment is received from the user at the input device, and the comment is associated with the identified time code.

In a second set of embodiments, an apparatus for associating comments with playback of media content includes a selection receiving module, a sampling module, a time code identification module, a comment receiving module, and an association module. The selection receiving module is configured to receive from a user a selection of an insertion point for a comment during the playback of the media content. The sampling module is configured to obtain a sample of a portion of the playback of the media content. The time code identification module is configured to identify a time code associated with the selected insertion point based on the sample. The comment receiving module is configured to receive the comment from the user. The association module is configured to associate the comment with the identified time code associated with the selected insertion point.

In a third set of embodiments, a method of associating comments with playback of media content includes receiving from a user at an output device a synchronization request. A sample of a portion of the playback of the media content is obtained at the output device. A time code associated with a current point in the playback of the media content is identified based on the sample of the portion of the playback of the media content. A comment associated with the current point in the playback of the media content is identified based on the time code associated with the current point in the playback of the media content. The identified comment is displayed to the user at the output device.

BRIEF DESCRIPTION OF THE DRAWINGS

A further understanding of the nature and advantages of the present invention may be realized by reference to the following drawings. In the appended figures, similar components or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.

FIG. 1 is a block diagram of a system including components configured according to various embodiments of the invention.

FIG. 2 is a block diagram of a display with an interface for making comments according to various embodiments of the invention.

FIG. 3A is a block diagram of a display with an interface for making comments according to various embodiments of the invention.

FIG. 3B is a block diagram of a display with an interface for making comments according to various embodiments of the invention.

FIG. 3C is a block diagram of a display with an interface for making comments according to various embodiments of the invention.

FIG. 4 is a block diagram of a system including components configured according to various embodiments of the invention.

FIG. 5 is a block diagram of a system including components configured according to various embodiments of the invention.

FIG. 6 is a block diagram of a system including components configured according to various embodiments of the invention.

FIG. 7 is a block diagram of an input device according to various embodiments of the invention.

FIG. 8 is a block diagram of a system including components configured according to various embodiments of the invention.

FIG. 9 is a block diagram of a system including components configured according to various embodiments of the invention.

FIG. 10 is a block diagram of an output device according to various embodiments of the invention.

FIG. 11 is a block diagram of a system including components configured according to various embodiments of the invention.

FIG. 12 is a flowchart diagram of an example method of associating comments with playback of media content according to various embodiments of the invention.

FIG. 13 is a flowchart diagram of an example method of associating comments with playback of media content according to various embodiments of the invention.

FIG. 14 is a flowchart diagram of an example method of associating comments with playback of media content according to various embodiments of the invention.

FIG. 15 is a flowchart diagram of an example method of associating comments with playback of media content according to various embodiments of the invention.

FIG. 16 is a schematic diagram that illustrates a representative device structure that may be used in various embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Methods, systems, devices, and computer program products are described to create and display time-specific comments on multimedia and other information content. An input device allows a user to select an insertion point for a comment during the playback of the media content. A sample is obtained of a portion of the playback of the media content, and a time code may be associated with the selected insertion point through pattern recognition (e.g., audio waveform recognition, image analysis or recognition, etc.) of the sample. The comment user may enter the comment into the input device, and the input device may associate the comment with the time code of the selected insertion point.

An output device allows a user to submit a synchronization request, which may trigger the output device to obtain a sample of a portion of the playback of the media content. A time code for a current point in the playback is identified using pattern recognition on the sample, and a comment associated with the current point in the playback may be identified and displayed to the user based on the time code.

This description provides examples only, and is not intended to limit the scope, applicability, or configuration of the invention. Rather, the ensuing description of the embodiments will provide those skilled in the art with an enabling description for implementing embodiments of the invention. Various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention.

Thus, various embodiments may omit, substitute, or add various procedures or components as appropriate. For instance, it should be appreciated that the methods may be performed in an order different than that described, and that various steps may be added, omitted or combined. Also, aspects and elements described with respect to certain embodiments may be combined in various other embodiments. It should also be appreciated that the following systems, methods, devices, and software may individually or collectively be components of a larger system, wherein other procedures may take precedence over or otherwise modify their application.

It should also be appreciated that the following systems, methods, devices, and software may individually or collectively be components of a larger system, wherein other procedures may take precedence over or otherwise modify their application. Also, a number of steps may be required before, after, or concurrently with the following embodiments.

Systems, devices, methods, and software are described for the creation of commentary on multimedia and other information content. In one set of embodiments, shown in FIG. 1, a system 100 includes input devices 105 (e.g., mobile device 105-a, mobile phone 105-b, laptop 105-c, tablet 105-d, computer 105-e, or other computing devices), networks 110, central server computer system 115, data store 120, and output devices 125 (e.g., mobile device 125-a, mobile phone 125-b, laptop 125-c, tablet 125-d, computer 125-e, or other computing devices). Each of these components may be in communication with each other, directly or indirectly.

Time, screen location, and object-specific comments may be created for multimedia and other information content. A user interface of an input device 105 allows a commentator to generate a comment, associated with a time code, for example, relating to the content (which, for purposes of this disclosure, may include movie, TV show, Internet and other video, book, article, song or other audio recording, photograph or other image, commercial advertisement, video game, immersive media, augmented or artificial reality media, the content contained in a comment, or other displayed content). This created comment may be viewable to others watching the content in real time, or on a delayed basis. By using a time code, modified time code or other locator or combination of locators as an external reference, the comment need not actually be inserted into the multimedia, but may be called up from remote servers as the user reaches the applicable point. The comment may include text, video, audio, photographs and other images, graphical overlays, animations, musical notations, geographic coordinates, discussion threads, external and internal links and associations with media, meta-media or other comments, software applications and applets, special notations to set and grant permissions and define system behaviors, or any media form appropriate to the underlying media, or any combination thereof.

The comment may be stored locally (at the device 105, set-top box, or other storage device), or may be transmitted to the central server computer system 115 for cataloging and storage in data store 120. The central server computer system 115 may be made up of one or more server computers, workstations, web servers, or other suitable computing devices. The central server computer system 115 may be a cable or satellite headend. The central server computer system 115 may be fully located within a single facility or distributed geographically, in which case a network may be used to integrate different components.

Data store 120 may be a single database, or may be made up of any number of separate and distinct databases. The data store 120 may include one, or more, relational databases or components of relational databases (e.g., tables), object databases, or components of object databases, spreadsheets, text files, internal software lists, or any other type of data structure suitable for storing data. Thus, it should be appreciated that a data store 120 may each be multiple data storages (of the same or different type), or may share a common data storage with other data stores. Although in some embodiments the data store 120 may be distinct from a central server computer system 115, in other embodiments it may be integrated therein to varying degrees. The created commentary may be integrated into the underlying multimedia or other information content, or may be stand-alone content to be leveraged with technology allowing the time stamps to sync with the content as it is played.

The user may be alerted to the existence of a comment during playback of the content by the appearance of a viewing window or an icon that can be touched or clicked on output device 125, to reveal its contents. In other examples, the content and commentary may be separated. Users may tailor their experience by selecting certain commentators, or types of commentators and/or comments.

The components of the system 100 may be directly connected, or may be connected via a network 110 which may be any combination of the following: the Internet, an IP network, an intranet, a wide-area network (“WAN”), a local-area network (“LAN”), a virtual private network, the Public Switched Telephone Network (“PSTN”), or any other type of network supporting data communication between devices described herein, in different embodiments. A network may include both wired and wireless connections, including optical links. Many other examples are possible and apparent to those skilled in the art in light of this disclosure. In the discussion herein, a network may or may not be noted specifically. If no specific means of connection is noted, it may be assumed that the link, communication, or other connection between devices may be via a network.

The following description describes various aspects and options for the system. In the discussion below, the comments may be referred to as comments. Comments, as used herein, are to be interpreted very broadly. Comments may be created by users using input devices 105. Comments may be viewed and controlled by users using output devices 125. An input device 105 may be an output device 125, as well. Comments may be stored and organized in data store 120. Each feature is set forth for purposes of example only, and may be included or excluded in various embodiments.

A variety of interfaces may be used for comment creation. A commentator may use these interfaces to input a comment into a movie or TV show (or other media) and to have that comment viewable (if the comment is marked public) to anyone else viewing the media content. By using a modified time code as an external reference, the comment may not actually be inserted into the media or into any metadata, but may be called up from a remote server as a viewer reaches that point in the media. There may be an uninterrupted feed by anticipating and pre-loading any upcoming comments. The user may be alerted to the existence of a comment during media playback by the appearance of a comment icon that can be touched or clicked to reveal its contents.

Thus, in one embodiment, there may simply be a time marker, screen location, and associated text for a given piece of content. This may be stored separately and independently from the underlying content. FIG. 2 illustrates an example block diagram 200 of a display 205 with an interface for making comments. The display 205 may be on, or integrated with, a mobile device, mobile phone, laptop, tablet, computer, television, head-mounted display, remote control, or any number of other computing or viewing devices. The display 205 may be a touch screen or be controlled by user inputs into a remote, peripheral, or other mobile device. In the illustrated display 205, the locate comment icon 210 is overlaid on the content. However, in other embodiments, the interface may be independent or on another screen or window from the content.

Display 205-a illustrates the interface at Time1, with a comment icon 210. A user may click on, or otherwise select, the comment icon 210. Display 205-b illustrates the interface at Time2. A comment entry window 215 appears in response to the selection of the comment icon to allow the user to comment via text entry.

A comment may be set to display for a preset, or configurable, period. A user may set in and out points so that an entire scene can be referenced by the comment. This may allow the user to ‘capture’ the scene or media sub-unit completely for reference and for playback or sharing. The user may set the comment to display at the beginning and end point, and to, optionally, display a scene marker during the span of the scene. This scene marker may be distinguishable from the standard comment marker. A user or the system also may set in and out points in combination with the identification of an entity or object on screen to capture the entire scene in which that object or entity appears.

As noted, comments are not limited to text, but may include text, video, audio, photographs and other images, graphical overlays, animations, musical notations, geographic coordinates, discussion threads, external and internal links and associations with media, meta-media or other comments, software applications and applets, special notations to set and grant permissions and define system behaviors or any combination thereof. Comments may be made by speaking, and the comment may be replayed during play of the underlying content.

Alternatively, there may be speech to text conversion for making comments and text-to-speech conversion for listening to comments. A user may insert a video of himself or herself with speech commentary, or other video may be inserted. Comments may be placed in specific locations on the display 205.

Comments from a number of users may be linked, associated, or otherwise integrated to create a comment set. A user may insert video, graphical, or audio overlays designed to be used simultaneously with media content rather than in separate or separable windows so that the media is augmented or fully joined by the message content. Comments may contain software applications that allow or trigger various actions within local or remote devices, software systems, or devices and systems within and outside the control of the user or the company or entity delivering these services. In this way, a comment can control local devices, for example, to reduce volume in one viewing window or pause or slow the media, or provide other services to the user or other entities. Comments may be used, for example, to control or administer micropayment systems for media or premium commentary. Comments may contain a hyperlink to points outside the comment systems and they also may contain a link to or an association with a comment within the comment system or they may contain several potential links offering user a choice of links to media, media subunits and other comments in the form of a question, quiz, survey, or other device such as a software player that can link the comments and play the resulting media and meta-media. Comments and link-containing comments may be daisy-chained or linked in a hub-and-spoke or other such arrangement to provide unique ways for users to move through media or through portions of media.

Comments may be inserted in traditionally non-time-based media such as paintings, photographs, and architectural renderings in such as way as to create simulations or animations that allow this media to take on the dimension of time. A commentary sequence might mirror the layering of paint on a canvas, the movement of a focal plane in a photograph from the farthest to the nearest point, or the construction sequence of a building. Such a commentary time flow simulation may then be used to invite further commentary along this artificial time line. Similar artificial time lines may also be created within time-based media to alter the time flow of the media or to allow the media to contain multiple time line spurs and other forms. For example, the image on a single video frame may be commented into multiple successive layers that represent an incremental progression in time to show the construction of the movie set shown in the video frame.

Comments may be inserted as header comments designed to appear to subsequent users in a viewing window associated with a point at the very beginning of the media and to contain general commentary about a piece of media not tied to a particular point on a timeline. Comments may contain messaging devices to allow the user, automatically or not, to send a message directly to another user or entity. Comments may include a device to exclude any user response from the public commentary or message stream so that it is viewable only as a private comment or message. Comments may have special status and functionality as super comments that allow individuals and entities, for example, a wiki service, to capture and distill various comments in a single comment or an ordered collection of comments, which can then be further vetted and added to. These super comments also may be filterable into collections of commentary that match a user's interests and sensibilities. Various comment types and combinations may be clearly marked with symbols, colors, or other methods to alert users to their capabilities and limitations.

In some embodiments, the windows position may be set automatically, or may be adjusted or otherwise customized at a user's discretion. Additional tabs and controls may be added to allow a user to select additional features described elsewhere herein.

FIG. 3A illustrates an example block diagram 300A of a display 305 with an alternative interface for making comments. This display 305 may be an example of the display 205 described with reference to FIG. 2. The display 305 may be on, or integrated with, a mobile device, mobile phone, laptop, tablet, computer, television, head-mounted display, remote control, or any number of other computing or viewing devices. The display 305 may be a touch screen or be controlled by user inputs into a remote, peripheral, or other mobile device. In the illustrated display 305, an insert icon 315 and scrubber control 310 are overlaid on the content. However, in other embodiments, the interface may be independent or on another screen or window from the content. The scrubber control 310 allows a user to control the insertion timing within the content (e.g., within a 10 minute window).

Display 305-a illustrates the interface at Time1, with an insert icon 315 and scrubber control 310 overlaid on the content. A user may use the scrubber control 310 to identify the proper place for comment insertion, and then may click on, or otherwise select, the insert icon 315. Display 305-b illustrates the interface at Time2. A comment type window 320 appears in response to the selection of the insert icon 315 to allow the user to comment via text, audio, video, or hyperlink, or insert a pause, or adjust the insertion point.

FIG. 3B is a block diagram 325 of a display 330 with an alternative interface for making comments. This display 330 may be an example of the display 205 described with reference to FIG. 2. The display 330 may be on, or integrated with, a mobile device, mobile phone, laptop, tablet, computer, television, head-mounted display, remote control, or any number of other computing or viewing devices. The display 330 may be a touch screen or be controlled by user inputs into a remote, peripheral, or other mobile device. In the illustrated display 330, an insert icon 315-a, scrubber control 310-a, content window 335, comment stream from other commentators 340, and comment entry window 345 are in different windows within the display 330. However, in other embodiments, each interface may be overlaid or integrated or on a screen, or some subset of this functionality may be on a different device.

A user may use the scrubber control 310-a to identify the proper place for comment insertion, and then may click on, or otherwise select, the insert icon 315-a. This display configuration allows a user to view the underlying content via content window 335, and also look at the comment stream 340 (perhaps filtered), and input comments into the comment entry window 345. In some examples, comments from the comment stream 340 may be dragged and dropped into the comment entry window 345, or otherwise selected for a comment set or other use. There may be threaded discussions, or comments from others may be pulled in.

A user may scrub a pane of commentary forward or back in its timeline and similarly scrub a media pane using software controls such as icons or touch gestures. Users may be able to control whether commentary and media panes are coupled or decoupled and may use coupling and decoupling to control multiple panes independently or together. For example, a user may be able to scrub both the comment stream window 340 and the content window 335 by swiping in either pane when an interface is set to a synchronization state, such as a ‘hard sync’ state.

A user may be able to set or decouple a ‘hard sync’ with touch gestures such as swiping both the commentary stream window 340 and the content window 335 simultaneously in the same direction to set a hard sync state or by swiping both windows 340, 335 simultaneously in opposite directions to turn off hard sync. Hard sync may be used to browse to media content at a desired location and view the relevant commentary, and/or to browse the commentary to view relevant moments in media. In certain examples, a hard sync control may be resident in one window so that swiping one window controls both windows while swiping the other window only controls the window being manipulated, allowing a user to freely manipulate one window out of synchronization without interrupting the time progression on another window. Such controls also may be used to manipulate multiple windows, and the set of windows being manipulated may or may not include a media window but may contain only commentary, for example. Other windows, such as the comment entry window 345 also may be set to control or be controlled by similar actions. Hard sync controls may be automatically applied within the user environment or may be set by the user.

These illustrative controls may allow a user to manage multiple windows each with multiple time referents and then use further manipulation to move or associate or perform other actions that allow a comment's time associations to be changed or to bridge multiple time associations. Doing so may allow a user to move a comment from one window to another to change its location in the media or to drop one comment onto another to associate the two comments. User actions to control synchronization and decoupling may include other gestures and manipulations such as tapping a handheld device or using swipe and other hand motions that do not contact a touchscreen but are otherwise sensed, or eye motions detected by the device and software or combinations of these gestures.

Resynchronization may be controlled by the user via software controls such as tapping in a window that represents the desired synchronization point, or resynchronization may occur automatically when a user manipulates a window so that it reaches the same point in the timeline as the other window. Automatic synchronization also may then be overridden with continued manipulation.

The system architecture for comment creation may take on a variety of forms. In some examples, DVD, broadcast, or streaming content may be received on a computer, set top box, or television. A user interface control (e.g., the control functions of the configurations illustrated in FIG. 2, 3A, or 3B) may be in the same screen, but distinct from the content (e.g., overlaid, or in separate windows). The user interface control and the content may be on different devices. The user interface control may use various mechanisms to associate a timestamp with the entry of a comment. In different embodiments, the user interface control may be integrated with content to varying degrees. The control window may receive inputs via a remote control, mobile device, keyboard, or other peripheral. The user interface control may control underlying content (i.e., pausing underlying content), or not, and it also may convey the underlying content to other devices for viewing and other actions.

FIG. 3C illustrates an example block diagram 350 of a display 355 with an alternative graphical overlay system for making, and viewing, comments from a single interface or set of interfaces. This display 355 may be an example of the display 205 described with reference to FIG. 2. The display 355 may be on, or integrated with, a mobile device, mobile phone, laptop, tablet, computer, television, head-mounted display, remote control, or any number of other computing or viewing devices. The display 355 may be a touch screen or be controlled by user inputs into a remote, peripheral, or other mobile device.

Display 355-a illustrates the interface at Time1, with an array of circles 360 (which may be referred to as category beacons) overlaid on the content. These beacons 360 may each represent a type of comment or a category, or a comment source or source category and each beacon may light up as the video passes a point at which a comment has been inserted. If a beacon 360 is pressed and held, the comments filtered by category may be shown. The beacons 360 may show a steady glow for comments that capture a media clip or subunit, with increasing brightness when multiple commentators have chosen the subunit or portions thereof. Regular comments show as brief pulses. By tapping, or clicking on, any of these buttons the category may be displayed. By pressing and holding, the user may be taken to a comment viewing window (not shown) that has been filtered by the category. The user can navigate sideways to other comment windows in other categories, and vertically to comment windows filtered by type of comment, such as humorous, or subject area, such as cinematography. Certain aspect ratios (not shown) may allow some of the components illustrated to be displayed below the video field by user preference. Letterbox video may be shifted to the very top of the display to provide more room below. A window of comments may be displayed on one or more multiple lines, or in combination with other modular windows, such as a graphic to show traffic in the comment stream.

Display 355-b illustrates the interface at Time2. A user may select the option of having a graphical overlay appear, allowing the user to have controls to view comments, write a comment, scrub to comment insertion points, and other tasks. The graphical overlay may include a compose comment 365 set of features, and a current comment 370 set of features.

The compose comment 365 bar may be tapped, and the bar may expand to two lines and continue to expand as text is added. Below ‘send,’ on the second line is a pair of icons for audio and video recording of the comment. ‘In’ may be tapped to insert the comment at the current location in the media. It is not necessary to set an out point, but one can be set by scrubbing to the desired location in the media and pressing the ‘out’ button. The ‘send’ feature provides sending options such as ‘send as a Tweet,’ ‘send to Facebook,’ ‘send as a message,’ as well as an option to ‘splice’ this comment to another in a comment document, using a splice or linking comment to connect them.

The current comment 370 bar shows the most recent comment passed in the timeline. ‘Current comment’ may be tapped to view the entire comment. ‘Current comment’ may be pressed and held to go to a comment viewing window. A small vertical line to the left of the current comment shows when the current media has been captured within a comment clip, and gives a rough indication when more commentators also have chosen the current scene. The triangles at either end of the bar can be tapped to move forward and back through the comment timeline. ‘Add’ is a thumbs up, adding the comment to the user's set of comments that will be passed along to others. Users may also be given opportunities to rank, rate, tag, characterize, categorize, introduce and respond to comments.

In this example, there is also a unified play, pause, and reverse button 375. The button 375 may be designed to use a single control for media and other content windows. The default mode may be forward mode. A user may tap once to play, tap again to pause, tap again to play, and so on. From a paused state, a user may press and hold for 1 second (or other time period) to play in reverse (indicated, for example, by an audible sound, 1×). A user may tap to pause, tap to play in reverse, tap to pause. From a paused state in reverse mode, a user may press and hold for 1 second (or other time period) to play in forward mode. Tapping pause and play continues to advance media forward. A user may press and hold again for reverse mode. There may also be fast forward and reverse. In either forward or reverse mode, at play or reverse play speed, a user may press and hold the play button (e.g., holding for 1 second for 2× speed, holding for 2 seconds for 4× speed, and tapping to pause)

There may also be a split scrubber 380 that lets the user scan the media and the comment stream simultaneously, and to have control of each individually. To insert or view comments, a user slides a pair of triangle markers along a double timeline and finds a desired location. The top scrubber controls the media (when the media window is on top or to the left) and the bottom scrubber controls the comment stream below or to the right. The wide space between the lines controls them both simultaneously. Scrubber marks may disappear during finger (or cursor) swipe manipulation between the lines.

As the triangles are moved, they may change color or shading. This allows the user to be aware of a change in their position on the timeline when their movement would not otherwise be obvious. If the triangles are synchronized, the triangles may change color together, remaining matched in color. If the triangles are out of synch, they may each change to different colors. This may help make the user aware that the user is out of synch when the distances on the timeline would not otherwise make it obvious.

With the split scrubber 380, a user may scan media and comments independently and quickly return the media to the place where it was paused. By tapping (or clicking) one or another of the relevant triangle markers, the user can choose to have the media resynchronized to the timeline location of either the media or the comments window. The user may also resynchronize by initiating play in the appropriate window. Aside from scanning and browsing, the split scrubber 380 may be used to change the insertion point or in/out points of a comment. The user may select a comment in the message window that he or she previously wrote, and after adjusting the media in the other window to the appropriate point, click the in or out icon, or click and drag the comment onto the media.

The split scrubber 380 also may be of use with other combinations of viewing windows, such as media and comment document windows, or comment and comment document windows. The split timeline may also be augmented with a third or fourth timeline to control multiple windows. The split scrubber 380 may also display the in and out points of the current comment if the comment pertains to a media clip (as opposed to a comment that has a single insertion point). It also may contain a space, for example, between the two lines, in which a finger swipe in either direction may advance the media to fine tune a location. It may contain points at either end that can be clicked or tapped to advance or reverse the media one frame at a time or advance or reverse the comment stream one comment at a time. These points may additionally be controlled by pressing and holding them to advance media in gradual acceleration up to 4×, for example. Fine control of this acceleration may be handled by a series of press/hold maneuvers, such as one press/hold for 1× speed and two press/holds for 2×. The split scrubber 380 also may be used to improve the speed of certain user operations when the system is unable to keep up with both media and commentary streams and when decoupling is desired.

A fine tune scrubber bar 385 may consist of a line within a window (horizontal or vertical) designed to focus finger swipe motions into a specific zone or to be manipulated by mouse control. It may be used without split scrubber 380 (e.g., it may be used in configurations in which use of a split scrubber 380 could lead to confusion or in which the split scrubber is too bulky). In some examples, a fine tune scrubber bar 385 may be used with each window with timeline-related elements, such as media and commentary, served by its own scrubber. Manipulation of one window may control both windows unless the synchronization of these windows is decoupled. Windows may be decoupled by pressing and holding one window while manipulating the scrubber of another. The windows can be resynchronized by initiating ‘play’ in either window, which synchronizes play to the chosen window. The disappearing scrub marker described herein may also have the capability of splitting into top and bottom halves so that this scrubber can be used as a less obtrusive split scrubber.

A fine tune scrubber bar 385 may be swiped from right to left, for example, to advance the media or commentary forward in the timeline. Rapid and repeated swiping may trigger the appearance of a marker indicating speed, such as 2× or 4×. It may also trigger the appearance of a scrub marker that shows progress along a timeline. When these markers appear, it may be a signal to the user to stop swiping and allow the content to continue at that speed to a desired point, or manipulate the markers to move a greater distance. A tap may again pause the content so that it can be fine-tuned by finger swipe. Pressing and holding a midpoint of the line may also trigger the display of the scrub marker and allow it to be manipulated to move greater distances in the timeline and to its beginning or end. This marker may disappear when the user makes further fine tune swiping motions. Tapping either end of the line may allow the user to advance frame by frame or comment by comment depending on the window. Pressing and holding one end of the line may increase scrubbing speed by successive increments, accelerating the speed from 2× to 4×, for example. This may work whether or not the scrub marker is visible, though it may also cause the scrub marker to appear so the user is aware of motion in the timeline. Releasing this may cause the window's content to pause again, or it may continue at that speed until the window is tapped to pause it. Further swiping may return the user to fine adjustments.

This scrubber bar 385 also may show fine movement in the disappearing scrub marker(s) by changing the color of the marker and the marker halves in the same manner as the split scrubber. These scrub markers may also be manipulated in the manner of the split scrubber above to decouple media from other windows and, by pressing and holding one or the other, resynchronizing to the timeline of the desired window.

There may also be browse scrubber functionality. Browse mode may be activated by pressing and holding a point in the media or comment window. Both may pause as soon as one is touched, or only the window that is touched may pause. Now either window may be manipulated by horizontal finger swipes to scrub the media and the comment stream forward and reverse. Rapid swiping in one direction (e.g., three times) may increase the speed of scrubbing and trigger the display of an optional simple scrubber bar and marker that can be manipulated to move greater distances in the timeline. If the optional simple scrubber bar is not manipulated, it may disappear after a short interval. If it is manipulated, once a finger is lifted from the scrubber, it may disappear and finger swiping may be automatically reactivated. While this swiping tool may default to simultaneous and synchronized viewing of both windows, the windows may be decoupled by manipulating one window with a swipe while pressing and holding the other. Once decoupled, the held window no longer needs to be held, and it stays in its position in the timeline.

In browse mode, there may be one screen anchored in a position in the timeline if the user hopes to return both windows to this original location to continue a viewing session. When it is time to resynchronize, the user can press and hold the window that is currently at the desired location, and the windows are synched. This mirrors a similar operation on the split scrubber in which the windows are resynchronized by pressing and holding the triangle marker associated with the window that is in the desired timeline position. If a user mistakenly presses the wrong window, the undo command may return the windows to their previous positions. The interface also may contain a command that can return the media to its previous viewing position(s) in case many user actions have transpired since the viewing session was interrupted. This command may be a second tier option of the undo command.

Browse mode may also allow the user to manipulate the media and comment screens vertically. Vertical strokes in the media window may move through other media in the queue or its sub-queues or through other comment projects underway. Pressing and holding points at the top and bottom edges of the window may move through sub-queues and other of these categories. This vertical movement may be helpful when the user is working across media to link scenes, create timeline-independent comment sets, build annotated music playlists, or create other commentary/media documents. It also allows a user to switch gears and enjoy other media.

The comment window may continue to display commentary from the first media until the user presses and holds the media window to synch commentary to that media and location on the timeline. Vertical strokes in the comment window move the window through the current list of comments arranged in timeline order, and each comment is expandable with a tap. Pressing and holding points at the top and bottom edges of the window may move through categories and classes of commentary so the user can view comments on a certain topic or of a certain type, such as humorous. Vertical movement in the comment window may be used in conjunction with horizontal movement to find a category (vertical movement to ‘acting’) and then move horizontally to select a type of comment, such as humorous, to display humorous comments about the acting. In windows or operations that benefit from diagonal movement, such as forms of a comment document builder, finger swipes can move screen objects diagonally and may move through matrices diagonally as well. Matrices and other mapping devices may also be viewed and navigated via other constructs in a 3D or simulated 3D environment, and the element of movement through time may add a fourth dimension to this navigation.

Browse mode may be further augmented with controls that allow the user to tap the edges of a viewing window to control incremental movements. In the media window, for example, a tap to the right edge (or a specifically marked spot on the edge) may advance the media one frame. In the message window, a similar tap may advance the comment stream by one comment. Taps on the top and bottom edges may advance the media window through the queue or sub-queues, and move the comment window through the comment categories. Pressing and holding these edges or marks may move the material in the window to its beginning or end point, such as the end of a media item. Finger swiping may be augmented or substituted by comparable mousing controls, such as clicking and dragging within a control bar, or with eye movements, such as two rapid glances toward one edge of the screen when a specific viewing window is selected.

In one set of embodiments, shown in FIG. 4, a system 400 includes input device 105-g (e.g., a computer or television), network 110-c, central server computer system 115-a, and data store 120-a. Although in this case a central server computer system 115-a, the underlying content may be accessed from a local source (e.g., DVD or other locally stored multimedia). This system 400 may be the system 100 of FIG. 1. Each of these components may be in communication with each other, directly or indirectly.

The central server computer system 115-a may stream, or otherwise transmit, video data (or other information data) to the input device. This content may be accessed from data store 120-a.

Time, screen location, and object-specific comments may be created for the content. A user interface control of an input device 105-g allows a user to generate a comment, associated with a time code, for example, relating to the content (which, for purposes of this disclosure, may include a movie, TV show, Internet and other video, book, article, song or other audio recording, photograph or other image, commercial advertisement, video game, immersive media, augmented or artificial reality media, the content contained in a comment, or other displayed content). By using a time code, modified time code, or other locator or combination of locators as an external reference, the comment need not actually be inserted into the multimedia. The comment may include text, video, audio, photographs and other images, graphical overlays, animations, musical notations, geographic coordinates, discussion threads, external and internal links and associations with media, meta-media or other comments, software applications and applets, special notations to set and grant permissions and define system behaviors or any combination thereof. The user interface control may be generated locally, or served from the central server computer system 115-a to the input device 105-g via network 110-c.

In one example, the content stream and user interface control are independent and distinct from each other (even when both are on the same display). In other embodiments, the content stream and user interface control are overlaid or partially integrated. In still other embodiments, the content stream and user interface control are tightly integrated. The following examples further illustrate the options.

FIG. 5 illustrates a system 500 which includes a content source 505 (which may be a DVD or other video disc player, a local or remote storage device, a central server computer system), a set top box 510, a mobile device 105-h (e.g., a tablet, smartphone, remote control, cell phone, or laptop), and a display 530 (e.g., television or other display). The set top box 510 includes a distribution module 515, content processing module 520, and local wireless device interface module 525. Each of these components may be in communication with each other, directly or indirectly. This system 500 may be the system 100, 400 of FIG. 1 or 4.

In one example, the content source 505 streams media content to the set top box 510, which is stored by the content processing module 520. The content processing module 520 may create an echo version of the media content. As used herein, the terms “parallel echo version” or “echo version” refer to a representation of the media content displayed or processed concurrently with a playback of a standard version of the media content. In certain examples, the “echo version” may simply be a lower resolution or lower bandwidth version of the media content. Additionally or alternatively, the echo version may modify or remove certain aspects of the media content, such as replacing visual objects in the media content with outlines or removing a certain range of frequencies from an audio component of the media content.

In parallel (or substantially in parallel), the content processing module 520 may provide a regular or high definition version of the content to distribution module 515 for delivery to display 530, while also delivering the echo version to the local wireless device interface module 525. Local wireless device interface module 525 may deliver the echo version wirelessly to the mobile device 105-h. The mobile device 105-h may control the playback of the echo to time the insertion of comments from the mobile device 105-h, and this echo timing may be distinct and independent from the content playback on the display 530 (i.e., the echo version and regular/high definition are not synchronized). In other embodiments, the playback of the echo version and the regular/high definition version are synchronized (so that control to stop, pause, fast forward, rewind at the display 530 (for the regular/high definition version) or the mobile device 105-h (for the echo version or the regular/high definition version) controls both displays).

Local wireless device interface module 525 may generate a user interface control for delivery to the mobile device 105-h. This user interface control may be transmitted with the echo version of the content to mobile device 105-h. Alternatively, the user interface control may be generated locally (e.g., as an App stored at the mobile device 105-h, wherein the echo version is integrated with the user interface control at the mobile device 105-h.

In certain examples, the functionality of the set top box 510 shown in FIG. 5 may be performed by an alternate device, such as the content source 505, a special-purpose internet appliance, a server, a network router, a network switch, and/or or a network access point.

In another example, the content source 505 streams different versions (the echo version and the regular/high definition version) of the content to the set top box 510, each of which may be stored by the content processing module 520. The content processing module 520 may provide the regular or high definition version of the content to distribution module 515 for delivery to display 530, while also delivering the echo version to the local wireless device interface module 525. Local wireless device interface module 525 may deliver the echo version wirelessly to the mobile device 105-h. The mobile device 105-h may control the playback of the echo version to time the insertion of comments, and this echo timing may be distinct and independent from the content playback on the display 530. In other embodiments, the playback of the echo version and the regular/high definition version are synchronized.

There are a number of other ways an echo version may be pulled out of the stream for time code needs. Echo version creation may occur at a central server computer system, on the set top box 510, at the display 530, or at the device 105-h. This echo version may also be designed so that it satisfies the need for 1) time code synchronization, 2) rough visual cross-checking to help users ensure that comments match up with desired input location, 3) scrubbing for fine tuning of comment placement, 4) delivery to comment servers to cross-check or identify media or provide synchronization, 5) faster retrieval, viewing, and selecting of media clips, or 6) any combination of these uses.

This echo version may be 1) a simple time code conveyance such as a media timer linked to the media content as displayed, 2) a low resolution version of the media content that stays within the bounds of copyright restrictions, 3) a version of the media content that is encoded to be inaccessible beyond time code use, 4) a version of the media content that is altered to be recognizable by the user but not in its standard and enjoyable form (such as music with a significant section of the frequency range removed, or such as video with only rough object outlines), or 5) a version of the media that is altered to be usable only by, for example, a data system designed to recognize and match patterns such as audio waveforms, equivalent forms of video, and equivalent forms of text and other multimedia, or 6) any combination of these uses. An equivalent form of text, for example, might utilize word counts, word and letter count sequences, or a very difficult to read font or combination of fonts.

FIG. 6 illustrates a system 600 which includes a content source 605 (which may be a DVD or other video disc player, a local or remote storage device, a central server computer system), a display 610 (e.g., television, monitor, or other display), a mobile device 105-i (e.g., a tablet, smartphone, remote control, cell phone, or laptop), and network 110-d. Each of these components may be in communication with each other, directly or indirectly. This system 600 may be the system 100, 400 of FIG. 1 or 4.

In one example, the content source 605 streams or otherwise transmits content to the display 610. The display 610 plays the content. The mobile device 105-i captures audio and/or video from the display (e.g., through a microphone and camera). The mobile device 105-i may transmit the captured audio or video over the network 110-d (e.g., to a central server computer system 115 of FIG. 1), and a time code associated with the audio/video waveform may be generated to identify the content and/or the location within the content. Alternatively, a software application at the mobile device 105-i may perform some of these functions. A user may then enter comments about the content from the mobile device 115-i, and the comments may be associated with the time code generated from the audio/video waveform. A variety of audio and/or video recognition techniques known in the art may be used to facilitate content recognition.

One or more time code(s) for a comment may be generated by one user action, and the comment may be created or edited and associated with the media in a later action. Comments may be characterized or categorized or associated in yet a later action by the original author or another user. The system may track the time and date of any additions, changes, characterizations, categorizations or associations to create a record of these changes for a range of purposes including the ability to track and analyze the context in which a comment was made, the provenance and development of ideas discussed in commentary, the timing and sequence of user-made associations among comments, the timing of responses to commercial and noncommercial comments, the timing of conversations and other interactions among users, and the progression and development of commentary-centric meta-media. Time and date may be used to allow users to track and display their commentary history. Time and date may be used to allow the creation of time-limited comments or to set comment aspects and features that may change over time. A portion or sample of the waveform may be attached to or included with the comment when a time code or modified time code or other placement techniques alone would be insufficient to assist with synchronization or in the absence of a connection to the Internet or to the appropriate local processing module. A portion or sample of the waveform also may be attached or included with the comment when it may be useful to a subsequent user as a reference or other tool.

Comment time codes may be changed or adjusted by users after initial insertion if needed. A user may reset the time code to another time. A user may flag another user's comment for being incorrectly time coded and may suggest alternate time code placement. An entire set of comments may be shifted to new time codes if the initial registration of the time codes was inaccurate. Time codes may be adjusted by the original commentator user by such means as changing the time code manually or moving the comment into another media or comment display window that is associated with the desired time code or adjustable to the desired time code. Time codes also may be adjusted by moving the comment to a mapped timeline or scrubber and locating the desired insertion point

Referring now to FIG. 7, a block diagram of an example of an input device 105-j is shown. The input device 105-j may interact with a user during playback of media content to receive and store comments about specific portions of the media content. The input device 105-j may be an example of the input device 105 described above with respect to FIG. 1, 4, or 6. The input device 105-j may provide a user interface which allows the user at least to generate comments about media content and associate the comments with discrete points during the playback of the media content.

The input device 105-j of the present example includes an insertion point selection receiving module 705, a sampling module 710, a sample identification module 715, a time code determination module 720, a comment receiving module 725, and an association module 730. Each of these components may be in communication, directly or indirectly. The insertion point selection receiving module 705 may interact with the user to receive from the user a selection of an insertion point during the playback of the media content for insertion of a comment. This insertion point may be the insertion point described above with reference to FIG. 3A, 3B, or 3C above.

The selection of the insertion point may be received using any of a variety of means. In certain examples, the user may select the insertion point during the playback of the media content using a scrubber control (e.g., scrubber 310 of FIG. 3A) or a split scrubber control (e.g., split scrubber 380 of FIG. 3C). Additionally or alternatively, the user may select the insertion point during the playback of the media content by tapping a button or making a menu selection at a certain time during the playback of the media content. The insertion point may be selected in real time during the playback of the media content and/or retroactively.

In certain examples, the insertion point selection receiving module 705 may receive multiple selections from the user of multiple points during the playback of the media content for association with a single comment. For instance, as described above, the user may select a first point during the playback of the media content for insertion of the comment and a second point during the playback of the media content to indicate an expiration or termination of the display of the comment.

The sampling module 710 may be configured to obtain a sample of a portion of the playback of the media content on a playback device (e.g., display 610 of FIG. 6) at a sampling point that is different from the selected insertion point. The sampling point may be before or after the selected insertion point from the user. In certain examples, the sample may be obtained by the sampling module 710 prior to the insertion point selection receiving module 705 receiving the selected insertion point for the comment. The sampling module 710 may obtain an audio sample of the portion of the playback of the media content by using a microphone to save a portion of audio from the playback of the media content. Additionally or alternatively, the sampling module 710 may obtain a video sample of the playback of the media content by using a camera to detect and save a portion of video displayed during playback of the media content.

The sample identification module 715 may be configured to identify the sample taken by the sampling module 710. In certain examples, the sample identification module 715 may transmit a representation of the sample to a pattern recognition server over a network. The pattern recognition server may compare a waveform from the representation of the sample to data in a data store to identify the media content and respond with a time code associated with the sampling point during the playback of the media content. The representation of the sample transmitted to the pattern recognition server may be downsampled or otherwise modified to reduce bandwidth. In additional or alternative examples, the sample or its representation may be modified to prevent the sample or its representation from being reconverted back to the media content. Additionally or alternatively, the sample identification module 715 may identify the sample taken by the sampling module 710 by comparing the sample to data in a local data store.

The time code determination module 720 may be configured to identify a time code associated with the selected insertion point based on the sample of the portion of the playback of the media content taken by the sampling module 710. As noted previously, the sample may be taken by the sampling module 710 prior to or after selected insertion point in the playback of the media content. As such, the time code determination module may determine an offset between the selected insertion point and the sampling point and identify the time code for the selected insertion point by adjusting the time code associated with the sampling point by the determined offset to determine the time code associated with the selected insertion point.

In one example, the input device 105-j may be a tablet computer in possession of a user while the user views a film on a separate display. The input device 105 may select an insertion point A for a comment on the film by tapping the input device 105-j at the desired insertion point during the playback of the film on the separate display. The sampling module 710 implemented by the input device 105-j may begin sampling the playback of the film at a sampling point that is 1.7 seconds after the selected insertion point. The sample identification module 715 may identify a time code of 1:32:15.4 for the sampling point. Consequently, the time code determination module 720 may identify a time code for the selected insertion point to be 1:32:17.1 (1:32:15.4 plus the offset of 1.7 seconds).

The comment receiving module 725 may be configured to receive a comment from the user. The user may intend that the comment be associated with the one or more selected insertion points during the playback of the media content received by the insertion point selection receiving module 705. The comment may include text and/or other content. In certain examples, the comment may include recorded audio, video, hyperlinks, animated content, and/or other content. As described previously, some comments may even include software functionality, such as applications or applets that may be invoked when the comments are viewed. For instance, a comment may include executable code such that when the comment is viewed, the code is executed to display an interactive activity to the viewer.

In additional or alternative examples, the comment(s) received at the comment receiving module 725 may be associated with one or more existing comments to allow a viewer of the comments to move through a daisy chain or other linked organization of comments, as described previously. Thus, when a comment is received at the comment receiving module 725, the input device 105-j may be further configured to receive a selection of a second comment from the user for association with the first comment.

Once the selection of the insertion point during the playback of the media content has been received by the insertion point selection receiving module 705 and the comment has been received by the comment receiving module 725, the association module 730 may be configured to associate the received comment with the received one or more points during the playback of the media content. Where applicable, the association module 730 may also associate the received comment with one or more other comments. This association may make it possible for a device or process receiving the comment to identify the relevant portion of the media content to which the comment applies.

The comment may be received at the comment receiving module 725 at a different point during the playback of the media content than the insertion point selected for insertion of the comment. For example, a user watching a video may select point A for insertion of a comment, work on the comment while the video continues to play, and submit the comment to the comment receiving module 725 at point B. However, because of the selected insertion point during the playback of the media content received at the insertion point selection receiving module 705, the association module 730 may associate the received content with the point(s) during the playback of the media content for which the comment is most relevant or for which the comment is intended.

The association of the received comment with the selected insertion point during the playback of the media content may be accomplished in a number of ways. In certain examples, the comment may be annotated with one or more pointers to the selected insertion point during the playback of the media content. Additionally or alternatively, a record of the received insertion point may be annotated with a pointer to the comment. In still other examples, a central database may include references to comments and insertion points during the playback of the media content, such that a reference to the received comment in the central database is associated with a reference to the insertion point selected for that comment during the playback of the media content.

In certain embodiments, the input device 105-j may be the same device used by the user to view the playback of the media content. For example, the input device 105-j may be a laptop or tablet computer which simultaneously plays the media content to the user and allows the user to generate comments for association with specific points in the film. Alternatively, the input device 105-j may be separate from a device used to playback the media content. For example, the input device 105-j may be a notebook or tablet computer on which the user enters comments while watching content provided to a television by a set top box. In such examples, some degree of synchronization may occur between the input device 105-j and the device on which playback occurs.

Referring next to FIG. 8, an example of a system 800 is shown. In the system 800 of FIG. 8, a user 815 utilizes an input device 105-k to generate comments about the playback of media content being viewed on an output device 125-f. The system 800 of the present example includes the input device 105-k, the output device 125-f, a network 110-e, a pattern recognition server 115-b, a pattern recognition data store 120-b, a comment server 115-c, a comment data store 120-c, a media content server 115-d, and a media content data store 120-d. Each of these components may be in communication, directly or indirectly.

The system 800 may be an example of the system 100 described above with respect to FIG. 1, the system 400 described above with respect to FIG. 4, the system 500 described above with respect to FIG. 5, and/or the system 600 described above with respect to FIG. 6. The input device 105-k may be an example of the input device 105 described above with respect to FIG. 1, 4, 6, or 7. The output device 125-f may be an example of the output device 125 described above with reference to FIG. 1. The network 110-e may be an example of the network 110 described above with reference to FIG. 1, 4, or 6. The pattern recognition server 115-b, the comment server 115-c, and the media content server 115-d may be examples of the central server computer system 115 described above with reference to FIG. 1 or 4. The pattern recognition data store 120-b, the comment data store 120-c, and the media content data store 120-d may be examples of the data store 120 described above with respect to FIG. 1 or FIG. 4.

Similar to the input device 105-j of FIG. 7, the input device 105-k of the present example includes an insertion point selection receiving module 705-a for receiving a selection of an insertion point during the playback of the media content from the user 815, a sampling module 710-a for obtaining a sample of a portion of the playback of the media content by the output device 125-f at a sampling point, a sample identification module 715-a for identifying the obtained sample, a time code determination module 720-a for determining a time code corresponding to the selected insertion point, a comment receiving module 725-a for receiving a comment from the user 815, and an association module 730-a for associating the received comment with the time code for the selected insertion point during the playback of the media content.

The sample identification module 715-a of the input device 105-k in the present example may be configured to communicate with the pattern recognition server 115-b to identify the time code associated with the sampling point. For example, the sample identification module 715-a may transmit a representation of the sample of the playback of the media content by the output device 125-f to the pattern recognition server 115-b, which may compare the representation of the sample to data in the pattern recognition data store 120-b to identify the sampling point in the playback of the media content. In certain examples, the pattern recognition server 115-b may also identify the media content. The pattern recognition server 115-b may respond to the sample identification module 715-a with the identity of the media content and/or a time code associated with the sampling point in the playback of the media content. The time code determination module 720-a may use this information to extrapolate a time code associated with the selected insertion point, as described above with respect to FIG. 7.

The input device 105-k of the present example may further include a data store transmission module 810. The data store transmission module 810 may transmit the time code for the selected insertion point with the received comment over the network 110-e to the comment server 115-c for storage in the comment data store 120-c. The comment may remain associated with the selected insertion point and the media content in the comment data store 120-c.

In the present example, the user may view the playback of the media content on the output device 125-f while concurrently using the input device 105-k to generate comments associated with specific points during the playback of the media content. The output device 125-f may receive the media content from the media content data store 120-d by way of the media content server 115-d and the network 110-e. In other examples, the media content may be played at the output device 125-f from a local disk or other form of local memory. In certain examples, the output device 125-f may retrieve comments relative to the media content from the comment data store 120-c via the comment server 115-c and the network 110-e for display during playback of the media content.

As shown in FIG. 8, the comment data store 120-c and the media content data store 120-d may be separate and independent from each other. The comments stored by the comment data store 120-c which are intended for display with the media content may be associated with the media content in the comment data store 120-c. In certain examples, the comment data store 120-c itself may be associated with one or more articles of media content.

FIG. 9 illustrates a system 900 which includes a content source 605-a (which may be a DVD or other video disc player, a local or remote storage device, a central server computer system), a display 610-a (e.g., television, monitor, or other display), a mobile device 125-g (e.g., a tablet, smartphone, remote control, cell phone, or laptop), and network 110-f. Each of these components may be in communication with each other, directly or indirectly. This system 600 may be the system 100, 400, 600, or 800 of FIG. 1, 4, 6 or 8. The mobile device 125-g may be an example of the output device 125 described above with reference to FIG. 1 and/or the set top box 510 described above with reference to FIG. 5. In certain examples, the mobile device 125-g may also be an example of the input device 105 described above with reference to FIG. 1, 4, 6, 7, or 8.

In one example, the content source 605-a streams or otherwise transmits media content to the display 610-a. The display 610-a plays the media content. The mobile device 125-g samples the content by capturing audio and/or video from the display (e.g., through a microphone and camera). The mobile device 105-i may transmit the captured audio or video over the network 110-d (e.g., to a central server computer system 115 of FIG. 1), and a time code associated with the audio/video waveform may be generated to identify the content and/or the location within the content. Alternatively, an App at the mobile device 105-i may perform some of these functions. A user may then receive comments about the content that are associated with the time code identified from the audio/video waveform. A variety of audio and/or video recognition techniques known in the art may be used to facilitate content recognition.

In certain examples, the output device 125-g may use the time code identified for the audio/video waveform to synchronize the display of comments at the output device 125-g with the continuing playback of the media content on the display device 610-a. Thus, as the playback of the media content progresses on the display device 610-a, the output device 125-g may continuously update a current point in the playback of the media content and display comments from a data store that are relevant to or otherwise associated with the current point in the playback of the media content.

Referring now to FIG. 10, a block diagram of an example of an output device 125-h is shown. The output device 125-h may interact with a user during playback of media content to display comments to the user about specific portions of the media content. The output device 125-h may be an example of the output device 125 described above with respect to FIG. 1 or 9, and/or the set top box 510 described above with reference to FIG. 5.

In certain examples, the output device 125-h may also be an example of the input device 105 described above with reference to FIG. 1, 4, 6, 7, or 8. The output device 125-h may provide a user interface which allows the user at least to receive and view comments about media content associated with specific portions of the media content.

The output device 125-h of the present example includes an synchronization request receiving module 705, a sampling module 710-b, a sample identification module 715-b, a comment receiving module 1010, a comment/playback synchronization module 1015, and a comment display module 1020. Each of these components may be in communication, directly or indirectly.

The synchronization request receiving module 1005 may be configured to receive from a user a request to synchronize a display of comments at the output device 125-h with the playback of media content at another device or at the output device 125-h itself. This request may be received by the user tapping a certain button displayed in a user interface by the output device, or by any other method that may suit a particular user interface and application of the principles of this disclosure.

Once a synchronization request is received at the synchronization request receiving module 1005, the sampling module 710-b may be configured to obtain a sample of a portion of the playback of the media content. The sampling module 710-b may be an example of the sampling module 710 described above with reference to FIG. 7 or 8. The sampling module 710-b may obtain an audio sample of the portion of the playback of the media content by using a microphone to save a portion of audio from the playback of the media content. Additionally or alternatively, the sampling module 710-b may obtain a video sample of the playback of the media content by using a camera to detect and save a portion of video displayed during playback of the media content.

The sample identification module 715-b may be configured to identify the sample taken by the sampling module 710-b. The sample identification module 715-b may be an example of the sample identification module 715 described above with reference to FIG. 7 or 8. In certain examples, the sample identification module 715-b may transmit a representation of the sample to a pattern recognition server over a network. The pattern recognition server may compare a waveform from the representation of the sample to data in a data store to identify the media content and respond with a time code associated with the sampling point during the playback of the media content. The representation of the sample transmitted to the pattern recognition server may be downsampled or otherwise modified to reduce bandwidth. In additional or alternative examples, the sample or its representation may be modified to prevent the sample or its representation from being reconverted back to the media content. Additionally or alternatively, the sample identification module 715-b may identify the sample taken by the sampling module 710-b by comparing the sample to data in a local data store. In certain examples, the pattern recognition server may also determine the identity of the media content.

The comment receiving module 1010 may be configured to receive comments from a data store of comments associated with the media content. The data store of comments may be locally stored and/or accessed over a network. Some or all of the comments may be associated with particular time codes associated with the playback of the media content. The comments may include text and/or other content. In certain examples, one or more comments may include recorded audio, video, hyperlinks, animated content, and/or other content. As described previously, some comments may even include software functionality, such as applications or applets that may be invoked when the comments are viewed. For instance, a comment may include executable code such that when the comment is viewed, the code is executed to display an interactive activity to the viewer.

In additional or alternative examples, the comment(s) received at the comment receiving module 1010 may be associated with one or more existing comments to allow a viewer of the comments to move through a daisy chain or other linked organization of comments, as described previously. Thus, when a comment is received at the comment receiving module 1010, the output device 125-h may be further configured to receive a selection of a second comment from the user for association with the first comment.

The comment/playback synchronization module 1015 may be configured to synchronize a display of comments received at the comment receiving module 1010 with the playback of the media content. Using the time code identified for the sampling point at the sample identification module 715-b, the comment playback/synchronization module may compute a time code associated with a current point in the playback of the media content.

The time code for the current point in the playback of the media content may be determined using a measured offset between the current point and the sampling point, and adjusting the time code determined for the sampling point by the offset. For example, if the sample identification module 715-b determines that the sampling module 710-b sampled the playback of the media content at time code 1:24:04.2, and 5 minutes and 38.4 seconds have elapsed since the sampling time, the comment playback/synchronization module may determine that the current point during the playback of the media content is time code 1:29:42.6 (1:24:04.2+0:05:38.4).

Once the time code for the current point during the playback of the media content is known, the comment playback synchronization module 1015 may identify one or more of the received comments associated with the current point in the playback of the media content based on the time code associated with the current point in the playback of the media content. A comment may be associated with the time code of the current point in the playback of the media content, for example, if the comment specifies an insertion point such that the time code for the current point in the playback is within a threshold amount of deviance from the time code for the insertion point. In additional or alternative examples, the comment may be associated with the time code of the current point in the playback of the media content if the comment specifies an insertion point that is prior to the time code for the current point and a termination or expiration point that is after the time code for the current point. A comment may also be associated with the time code of the current point in the playback of media content if it is associated with a comment that is associated with the current point. Such non-time-code associations may be factored more or less in selecting comments for inclusion and may include associations among users, comments, media, topics, and other associations.

These comments may be provided to the comment display module 1020, which may display the comments at a user interface of the output device. In certain examples, additional filtering options may be performed to select only a subset of the comments associated with the current time code are ultimately displayed to the user.

Referring next to FIG. 11, an example of a system 1100 is shown. In the system 1100 of FIG. 11, a user 815 utilizes an output device 125-i to receive and view comments about the playback of media content being viewed on a display device 605-b. The system 1100 of the present example includes the output device 125-i, the display device 605-b, a network 110-g, a pattern recognition server 115-e, a pattern recognition data store 120-e, a comment server 115-f, a comment data store 120-f, a media content server 115-g, and a media content data store 120-g. Each of these components may be in communication, directly or indirectly.

The system 1100 may be an example of the system 100 described above with respect to FIG. 1, the system 400 described above with respect to FIG. 4, the system 500 described above with respect to FIG. 5, the system 600 described above with respect to FIG. 6, the system 800 described above with respect to FIG. 8, and/or the system 900 described above with respect to FIG. 9. The output device 125-i may be an example of the output device 125 described above with reference to FIG. 1, 8, 9, or 10. The network 110-g may be an example of the network 110 described above with reference to FIG. 1, 4, 6, 8, or 9. The pattern recognition server 115-e, the comment server 115-f, and the media content server 115-g may be examples of the servers 115 described above with reference to FIG. 8 and/or the central server computer system 115 described above with reference to FIG. 1 or 4. The pattern recognition data store 120-e, the comment data store 120-f, and the media content data store 120-g may be examples of the data stores 120 described above with respect to FIG. 1, 4, or 8.

Similar to the output device 125-h of FIG. 10, the output device 125-i of the present example includes a synchronization request receiving module 1005-a for receiving a synchronization request from the user 815, a sampling module 710-c for obtaining a sample of a portion of the playback of the media content by the display device 605-b at a sampling point, a sample identification module 715-c for identifying the obtained sample, and a comment receiving module 1010-a for receiving a number of comments associated with the playback of the media content. The output device 125-i further includes a comment playback/synchronization module 1015-a for identifying a time code associated with a current point in the playback of the media content based on the sample and identifying a comment associated with the current point in the playback of the media content based on the time code associated with the current point. A comment display module 1020-a displays the comment associated with the current point in the playback of the media content to the user 815.

The sample identification module 715-c of the output device 125-i in the present example may be configured to communicate with the pattern recognition server 115-e to identify the time code associated with the sampling point. For example, the sample identification module 715-c may transmit a representation of the sample of the playback of the media content by the display device 605-b to the pattern recognition server 115-e, which may compare the representation of the sample to data in the pattern recognition data store 120-e to identify the sampling point in the playback of the media content. In certain examples, the pattern recognition server 115-e may also identify the media content. The pattern recognition server 115-e may respond to the sample identification module 715-c with the identity of the media content and/or a time code associated with the sampling point in the playback of the media content. The comment/playback synchronization module may use this information to extrapolate a time code associated with the current point in the playback of the media content, as described above.

The comment receiving module 1010-a of the present example may be configured to communicate with the comment server 115-f to receive the comments associated with the media content from the comment data store 120-f. In certain examples, the comment receiving module 1010-a may establish communication with the comment server 115-f, and the comment server 115-f may stream comments relevant to the media content to the comment receiving module 1010-a. Some or all of the comments may be associated with specific portions of the media content. The comment receiving module 1010-a may pre-cache received comments that are associated with a future point in the playback of the media content.

In the present example, the user may view the playback of the media content on the display device 605-b while concurrently using the output device 125-i to view comments associated with specific points during the playback of the media content. The display device 605-b may receive the media content from the media content data store 120-g by way of the media content server 115-g and the network 110-g. In other examples, the media content may be played at the display device 605-b from a local disk or other form of local memory. In additional or alternative examples, the display device 605-b and the output device 125-i may be the same device.

As shown in FIG. 11, the comment data store 120-f and the media content data store 120-g may be separate and independent from each other. The comments stored by the comment data store 120-f which are intended for display with the media content may be associated with the media content in the comment data store 120-g. In certain examples, the comment data store 120-f itself may be associated with one or more articles of media content.

Referring next to FIG. 12, flowchart of an example method 1200 of associating comments with playback of media content is shown. The method 1200 may be performed, for example, by the input device 105 described above with respect to FIG. 1, 4, 6, 7, or 8, the central server computer system 115 described above with reference to FIG. 1 or 4, and/or by the set-top box 510 described above with respect to FIG. 5.

At block 1205, a selection of an insertion point for a comment during the playback of media content is received from a user at an input device. At block 1210, a sample is obtained at the input device of a portion of the playback of the media content. At block 1215, a time code associated with the selected insertion point is identified at the input device based on the sample. At block 1220, the comment is received from the user at the input device, and at block 1225, the comment is associated with the identified time code.

Referring next to FIG. 13, flowchart of another example method 1300 of associating comments with playback of media content is shown. The method 1300 may be performed, for example, by the input device 105 described above with respect to FIG. 1, 4, 6, 7, or 8, the central server computer system 115 described above with reference to FIG. 1 or 4, and/or by the set-top box 510 described above with respect to FIG. 5.

At block 1305, a selection of an insertion point for a comment during the playback of media content is received from a user at an input device. At block 1310, a sample is obtained at the input device of a portion of the playback of the media content at a sampling point. At block 1315, an offset between the selected insertion point and the sampling point is determined. At block 1320, a representation of the sample is transmitted to a pattern recognition server. At block 1325, a time code associated with the sampling point is received from the pattern recognition server. The time code associated with the sampling point may be received in response to the transmission of the sample to the pattern recognition server. At block 1330, a time code for the selected insertion point is identified at the input device based on the sample by adjusting the time code for the sampling point by the determined offset. At block 1335, the comment is received from the user, and at block 1340, the comment is associated with the identified time code for the selected insertion point.

Referring next to FIG. 14, flowchart of another example method 1400 of associating comments with playback of media content is shown. The method 1400 may be performed, for example, by the output device 125 described above with respect to FIG. 1, 8, 9, 10, or 11, the central server computer system 115 described above with reference to FIG. 1 or 4, and/or by the set-top box 510 described above with respect to FIG. 5.

At block 1405, a synchronization request is received from a user at an output device. At block 1410, a sample of a portion of the playback of the media content is obtained at the output device. At block 1415, a time code associated with a current point in the playback of the media content is identified based on the sample. At block 1420, a comment associated with the current point in the playback of the media content is identified based on the time code associated with the current point in the playback of the media content. At block 1425, the identified comment is displayed to the user at the output device.

Referring next to FIG. 15, flowchart of another example method 1500 of associating comments with playback of media content is shown. The method 1500 may be performed, for example, by the output device 125 described above with respect to FIG. 1, 8, 9, 10, or 11, the central server computer system 115 described above with reference to FIG. 1 or 4, and/or by the set-top box 510 described above with respect to FIG. 5.

At block 1505, a synchronization request is received from a user at an output device during the playback of the media content. At block 1510, a sample is obtained at the output device of a portion of the playback of the media content at a sampling point. At block 1515, a representation of the sample is transmitted to a pattern recognition server. At block 1520, a time code associated with the sampling point is received from the pattern recognition server. At block 1525, an offset between the sampling point and a current point in the playback of the media content is determined 1525. At block 1530, a time code for the current point in the playback of the media content is identified by adjusting the time code associated with the sampling point by the determined offset. At block 1535, a comment associated with the current point in the playback of the media content is identified from a comment data store. At block 1540, the identified comment associated with the current point in the playback of the media content is displayed to the user.

A device structure 1600 that may be used for one or more input devices 105, the central server computer system 115, for one or more set-top boxes 510, for one or more output devices 125, or for other computing devices described herein, is illustrated with the schematic diagram of FIG. 16. This drawing broadly illustrates how individual system elements of each of the aforementioned devices may be implemented, whether in a separated or more integrated manner. Thus, any or all of the various components of one of the aforementioned devices may be combined in a single unit or separately maintained and can further be distributed in multiple groupings or physical units or across multiple locations. The example structure shown is made up of hardware elements that are electrically coupled via bus 1605, including processor(s) 1610 (which may further comprise a DSP or special-purpose processor), storage device(s) 1615, input device(s) 1620, and output device(s) 1625. The storage device(s) 1615 may be a machine-readable storage media reader connected to any machine-readable storage medium, the combination comprehensively representing remote, local, fixed, or removable storage devices or storage media for temporarily or more permanently containing computer-readable information. The communications system(s) interface 1645 may interface to a wired, wireless, or other type of interfacing connection that permits data to be exchanged with other devices. The communications system(s) interface 1645 may permit data to be exchanged with a network.

The structure 1600 may also include additional software elements, shown as being currently located within working memory 1630, including an operating system 1635 and other code 1640, such as programs or applications designed to implement methods of the invention. It will be apparent to those skilled in the art that substantial variations may be used in accordance with specific requirements. For example, customized hardware might also be used, or particular elements might be implemented in hardware, software (including portable software, such as applets), or both.

It should be noted that the methods, systems and devices discussed above are intended merely to be examples. It must be stressed that various embodiments may omit, substitute, or add various procedures or components as appropriate. For instance, it should be appreciated that, in alternative embodiments, the methods may be performed in an order different from that described, and that various steps may be added, omitted or combined. Also, features described with respect to certain embodiments may be combined in various other embodiments. Different aspects and elements of the embodiments may be combined in a similar manner. Also, it should be emphasized that technology evolves and, thus, many of the elements are exemplary in nature and should not be interpreted to limit the scope of the invention.

Specific details are given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments may be described as a process which is depicted as a flow diagram or block diagram. Although each may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may have additional steps not included in the figure.

Moreover, as disclosed herein, the term “memory” or “memory unit” may represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices or other computer-readable mediums for storing information. The term “computer-readable medium” includes, but is not limited to, portable or fixed storage devices, optical storage devices, wireless channels, a sim card, other smart cards, and various other mediums capable of storing, containing or carrying instructions or data.

Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a computer-readable medium such as a storage medium. Processors may perform the necessary tasks.

Having described several embodiments, it will be recognized by those of skill in the art that various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the invention. For example, the above elements may merely be a component of a larger system, wherein other rules may take precedence over or otherwise modify the application of the invention. Also, a number of steps may be undertaken before, during, or after the above elements are considered. Accordingly, the above description should not be taken as limiting the scope of the invention. 

1. A method of associating comments with playback of media content, the method comprising: receiving from a user at an input device a selection of an insertion point for a comment during the playback of the media content; obtaining a sample of a portion of the playback of the media content with the input device; identifying a time code associated with the selected insertion point at the input device based on the sample; receiving the comment from the user at the input device; and associating the comment with the identified time code.
 2. The method of claim 1, further comprising: transmitting a representation of the sample to a pattern recognition server over a network.
 3. The method of claim 2, further comprising: receiving a response to the transmitted representation of the sample from the pattern recognition server; wherein the identifying the time code is further based on the received response from the pattern recognition server.
 4. The method of claim 3, further comprising: sampling the playback of the media content at a sampling point to obtain the sample, the sampling point being different from the insertion point; wherein the response from the pattern recognition server comprises a time code associated with the sampling point.
 5. The method of claim 4, further comprising: determining an offset between the selected insertion point and the sampling point; wherein the identifying the time code associated with the insertion point comprises adjusting the time code associated with the sampling point by the determined offset to determine the time code associated with the insertion point.
 6. The method of claim 1, further comprising: determining an identity of the media content based on the sample.
 7. The method of claim 1, further comprising: transmitting the comment and the time code associated with the insertion point to a data store of stored comments associated with the media content; wherein the data store is stored independently from the media content.
 8. The method of claim 1, wherein the receiving the selection of the insertion point for the comment occurs after the obtaining the sample.
 9. An apparatus for associating comments with playback of media content, the apparatus comprising: a selection receiving module configured to receive from a user a selection of an insertion point for a comment during the playback of the media content; a sampling module configured to obtain a sample of a portion of the playback of the media content; a time code identification module configured to identify a time code associated with the selected insertion point based on the sample; a comment receiving module configured to receive the comment from the user; and an association module configured to associate the comment with the identified time code associated with the selected insertion point.
 10. The apparatus of claim 9, wherein the time code identification module is further configured to: transmit a representation of the sample to a pattern recognition server over a network.
 11. The apparatus of claim 10, wherein the time code identification module is further configured to: receive a response to the transmitted representation of the sample from the pattern recognition server; and identify the time code associated with the insertion point based on the received response from the pattern recognition server.
 12. The apparatus of claim 11, wherein: the sampling module is further configured to sample the media content playback beginning at a sampling point to obtain the sample, the sampling point being different from the insertion point; and the response from the pattern recognition server comprises a time code associated with the sampling point.
 13. The apparatus of claim 12, wherein: the time code identification module is further configured to determine an offset between the selected insertion point and the sampling point; and the identifying the time code associated with the insertion point comprises adjusting the time code associated with the sampling point by the determined offset to determine the time code associated with the insertion point.
 14. A method of associating comments with playback of media content, the method comprising: receiving from a user at an output device a synchronization request; obtaining a sample of a portion of the playback of the media content at the output device; identifying a time code associated with a current point in the playback of the media content based on the sample of the portion of the playback of the media content; identifying a comment associated with the current point in the playback of the media content based on the time code associated with the current point in the playback of the media content; and displaying the identified comment to the user at the output device.
 15. The method of claim 14, further comprising: transmitting a representation of the sample to a pattern recognition server over a network.
 16. The method of claim 15, further comprising: receiving a response to the transmitted representation of the sample from the pattern recognition server; wherein the identifying the time code is further based on the received response from the pattern recognition server.
 17. The method of claim 16, further comprising: sampling the playback of the media content beginning at a sampling point to obtain the sample; wherein the response from the pattern recognition server comprises a time code associated with the sampling point.
 18. The method of claim 17, further comprising: determining an offset between the current point in the playback of the media content and the sampling point; wherein the identifying the time code associated with the current point of the playback of the media content comprises adjusting the time code associated with the sampling point by the determined offset to determine the time code associated with the current point in the playback of the media content.
 19. The method of claim 14, further comprising: receive the comment associated with the current point in the playback of the media content from a data store of stored comments associated with the media content; wherein the data store is stored independently from the media content.
 20. The method of claim 14, further comprising: determining an identity of the media content based on the sample. 